package com.codeZ.CompositePattern.actualCombat;

/**
 * 抽象类
 *
 * @author codeZhang
 * @Date 2024/8/15 11:03
 */
public abstract class Component {

    /**
     * 名称
     */
    String name;
    /**
     * 大小
     */
    long size;

    /**
     * 添加
     *
     * @param component 组件
     */
    public abstract void add(Component component);

    /**
     * 移除
     *
     * @param component 组件
     */

    public abstract void remove(Component component);


    /**
     * 显示
     * @param depth 深度
     */
    public abstract void display(int depth);

    /**
     * 获取名称
     *
     * @return 名称
     */
    public abstract String getName();

    /**
     * 获取大小
     *
     * @return 大小
     */
    public abstract long getSize();

}
